package com.example.musicplayer.mapper;

import com.example.musicplayer.model.Music;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface LoveMusicMapper {
    /**
     * 查找是否重复收藏音乐
     * @param userId 用户ID
     * @param musicId 音乐ID
     * @return 返回找到的音乐
     */
    Music findLoveMusic(int userId, int musicId);

    /**
     * 插入收藏音乐
     * @param userId 用户ID
     * @param musicId 音乐ID
     * @return 返回是否收藏成功
     */
    boolean insertLoveMusic(int userId, int musicId);

    /**
     * 没有传参, 默认返回用户喜欢的所有音乐
     * @param userId
     * @return
     */
    List<Music> findLoveMusicById(int userId);

    /**
     * 根据音乐名称查找收藏音乐
     * @param musicName 音乐名称
     * @param userId 用户ID
     * @return 返回查找到的音乐
     */
    List<Music> findLoveMusicByNameAndId(String musicName, int userId);

    /**
     * 删除音乐
     * @param userId 用户ID
     * @param musicId 音乐ID
     * @return 返回是否删除成功
     */
    boolean deleteLoveMusic(int userId, int musicId);

    /**
     * 根据音乐ID删除音乐(主要用于删除music表内的同步删除)
     * @param musicId 音乐ID
     * @return 返回是否删除成功
     */
    boolean deleteLoveMusicById(int musicId);
}
